home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
ste
/
mega
/
wrap_fix.arc
/
WRAP_FIX.S
< prev
Wrap
Text File
|
1992-03-18
|
2KB
|
89 lines
; Program: WRAP_FIX.S
; Version 1.50
;
; Author: BKM
; Copyright (c) 1992, BKM, All rights reserved
;
; Purpose:
; This program will attempt to 'fix' the screen wrap on the Mega/STe
; while in mono.
;
; How:
; Whenever the Mega/STe is in monochrome and a setscreen (XBIOS 5)
; command is executed, with the resolution being passed as anything
; other than a -1, the screen can wrap. We will replace the XBIOS
; (TRAP #14) routine with one that checks for a setscreen command and
; for a parameter of 2 for the resolution. If so, we will replace
; the resolution value with -1. It will then fall through to the old
; XBIOS routine.
;
;**************************
GEMDOS equ $01
BIOS equ $0d
; GEMDOS Routines
Cconws equ $09
Ptermres equ $31
; BIOS Routines
Setexec equ $05
; XBIOS Routines
Setscreen equ $05
;**************************
text
_start:
lea _end,a3 ; Get program size
suba.l 4(sp),a3
_get_vec:
move.l #-1,-(sp) ; Get XBIOS vector
move.w #46,-(sp)
move.w #Setexec,-(sp)
trap #BIOS
addq.l #8,sp
move.l d0,_oldvc ; Save it
_rep_vec:
move.l #_My_Xbios,-(sp) ; Replace with my own
move.w #46,-(sp)
move.w #Setexec,-(sp)
trap #BIOS
addq.l #8,sp
_dsp_title:
move.l #_Title,-(sp) ; Display Title on screen
move.w #Cconws,-(sp)
trap #GEMDOS
addq.l #6,sp
_finish:
move.w #0,-(sp) ; Exit and retain our program
move.l a3,-(sp)
move.w #Ptermres,-(sp)
trap #GEMDOS
illegal ; If we ever get here, we're
; in big trouble!
_My_Xbios:
move.l usp,a0
cmpi.w #Setscreen,(a0) ; Command is Setscreen?
bne.s _exit ; No - fall through
cmpi.w #$02,$0a(a0) ; Resolution = 2 (Mono?)
bne.s _exit ; No - fall through
move.w #-1,$0a(a0) ; Yes- replace with -1
_exit:
movea.l _oldvc,a0 ; Fall through
jmp (a0)
illegal ; If we ever get here, we're
; in big trouble!
even
data
_Title: dc.b $0d,$0a,$1b,'p'
dc.b 'Wrap Fix 1.50',$9e
dc.b $1b,'q',$0d,$0a
dc.b ' (c) BKM 1992 '
dc.b $0d,$0a,$00
even
bss
_oldvc: ds.l 1
_end: